home *** CD-ROM | disk | FTP | other *** search
/ PC go! 2018 January / PCgo 01-2018 CD-ROM Germany.iso / nw.pak / Unnamed File 004932.txt < prev    next >
Encoding:
Text File  |  2015-07-29  |  1.3 KB  |  42 lines

  1. // Copyright 2014 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4.  
  5. // Custom binding for the i18n API.
  6.  
  7. var binding = require('binding').Binding.create('i18n');
  8.  
  9. var i18nNatives = requireNative('i18n');
  10. var GetL10nMessage = i18nNatives.GetL10nMessage;
  11. var GetL10nUILanguage = i18nNatives.GetL10nUILanguage;
  12.  
  13. binding.registerCustomHook(function(bindingsAPI, extensionId) {
  14.   var apiFunctions = bindingsAPI.apiFunctions;
  15.  
  16.   apiFunctions.setUpdateArgumentsPreValidate('getMessage', function() {
  17.     var args = $Array.slice(arguments);
  18.  
  19.     // The first argument is the message, and should be a string.
  20.     var message = args[0];
  21.     if (typeof(message) !== 'string') {
  22.       console.warn(extensionId + ': the first argument to getMessage should ' +
  23.                    'be type "string", was ' + message +
  24.                    ' (type "' + typeof(message) + '")');
  25.       args[0] = String(message);
  26.     }
  27.  
  28.     return args;
  29.   });
  30.  
  31.   apiFunctions.setHandleRequest('getMessage',
  32.                                 function(messageName, substitutions) {
  33.     return GetL10nMessage(messageName, substitutions, extensionId);
  34.   });
  35.  
  36.   apiFunctions.setHandleRequest('getUILanguage', function() {
  37.     return GetL10nUILanguage();
  38.   });
  39. });
  40.  
  41. exports.binding = binding.generate();
  42.